<?php

abstract class ProductLoadTemplate
{
    function loadData($id, $type){
        $this->setCommon($id);
        $this->setClick($id);
        $this->setLog($id);
        //执行数据库方法，根据$type不同，返回不同的数据
        return new class($id, $type){
            function __construct($id, $type)
            {
                //数据库中获取值
                $arr = ['prod_id' => 103, 'prod_name' => '黑客技术从入门到入狱'];
                foreach ($arr as $k => $v){
                    $this->$k = $v;
                }
            }
        };
    }
    abstract function setClick($id);//设置点击量
    abstract function setLog($id);//设置日志
    //通用设置方法
    function setCommon($id)
    {
        echo "调用通用方法<hr />";
    }
}